package com.ruoyi.media.service.impl;

import java.util.List;

import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.media.mapper.ImagesMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.media.mapper.CategoriesMapper;
import com.ruoyi.media.domain.Categories;
import com.ruoyi.media.service.ICategoriesService;

/**
 * 分类管理Service业务层处理
 * 
 * @author crocodilePole
 * @date 2024-11-19
 */
@Service
public class CategoriesServiceImpl implements ICategoriesService 
{
    @Autowired
    private CategoriesMapper categoriesMapper;

     @Autowired
    private ImagesMapper imagesMapper;

    /**
     * 查询分类管理
     * 
     * @param categoryId 分类管理主键
     * @return 分类管理
     */
    @Override
    public Categories selectCategoriesByCategoryId(Long categoryId)
    {
        return categoriesMapper.selectCategoriesByCategoryId(categoryId);
    }

    /**
     * 查询分类管理列表
     * 
     * @param categories 分类管理
     * @return 分类管理
     */
    @Override
    public List<Categories> selectCategoriesList(Categories categories)
    {
        return categoriesMapper.selectCategoriesList(categories);
    }

    /**
     * 新增分类管理
     * 
     * @param categories 分类管理
     * @return 结果
     */
    @Override
    public int insertCategories(Categories categories)
    {
        return categoriesMapper.insertCategories(categories);
    }

    /**
     * 修改分类管理
     * 
     * @param categories 分类管理
     * @return 结果
     */
    @Override
    public int updateCategories(Categories categories)
    {
        return categoriesMapper.updateCategories(categories);
    }

    /**
     * 批量删除分类管理
     * 
     * @param categoryIds 需要删除的分类管理主键
     * @return 结果
     */
    @Override
    public int deleteCategoriesByCategoryIds(Long[] categoryIds)
    {
         int count = imagesMapper.selectCountByCategoryId(categoryIds);
        if(count > 0)
            throw new BaseException( count + "个图片正在使用，请先删除图片后再删除分类");
        else
            return categoriesMapper.deleteCategoriesByCategoryIds(categoryIds);
    }

    /**
     * 删除分类管理信息
     * 
     * @param categoryId 分类管理主键
     * @return 结果
     */
    @Override
    public int deleteCategoriesByCategoryId(Long categoryId)
    {
        Long[] categoryIds = new Long[1];
        categoryIds[0] = categoryId;


        //删除之前做查询
        int count = imagesMapper.selectCountByCategoryId(categoryIds);
        if(count > 0)
            throw new BaseException( count + "个图片正在使用，请先删除图片后再删除分类");
        else
            return categoriesMapper.deleteCategoriesByCategoryId(categoryId);


    }
}
